package net.sourceforge.openforecast.input;

import net.sourceforge.openforecast.DataSet;

/** An interface that defines the minimal requirements for a class to be considered a "builder". This serves to bring
 * some consistency between the potentially very different builder classes.
 * <p>
 * A class that implements the Builder interface generally provides some means of obtaining data and using that data to
 * build a DataSet - a collection of DataPoints - or, in some cases, a single DataPoint from that data.
 * 
 * @author Steven R. Gould
 * @since 0.4 */
public interface Builder {
	/** Retrieves a DataSet - a collection of DataPoints - from the current input source. The DataSet should contain all
	 * DataPoints defined by the input source.
	 * 
	 * @return a DataSet built from the current input source.
	 * @throws Exception if an error occurred reading from the input source. */
	public DataSet build() throws Exception;
}